﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars;
using QLKhachSan.DTO;
using System.Data.SqlClient;
using QLKhachSan.DAO;
using QLKhachSan.BUS;
using DevExpress.XtraEditors;

namespace QLKhachSan.GUI
{
    public partial class fDichVu : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        public fDichVu()
        {
            InitializeComponent();
        }

        private Boolean checkThemDV;
        private Boolean checkThemLoaiDV;

        private void fDichVu_Load(object sender, EventArgs e)
        {
            // Chi Tiet Dich Vu
            simpleButtonHuy.Enabled = false;
            simpleButtonLuu.Enabled = false;
            simpleButtonSua.Enabled = true;
            simpleButtonThem.Enabled = true;
            simpleButtonXoa.Enabled = true;
            textBoxMaDV.Enabled = false;
            textBoxMaDV.ResetText();
            textBoxTenDV.Enabled = false;
            textBoxTenDV.ResetText();
            textBoxMoTa.Enabled = false;
            textBoxMoTa.ResetText();
            textBoxDonGia.ResetText();
            textBoxDonGia.Enabled = false;
            textBoxDonViTinh.Enabled = false;
            textBoxDonViTinh.ResetText();
            checkThemDV = false;
            dataGridViewDV.DataSource = BUS_DichVu.hienthiDanhSachDichVu();
            comboBoxTenLoaiDV.Enabled = false;
            DataTable dt_LoaiDichVu = BUS_LoaiDichVu.hienthiDanhSachLoaiDichVu();
            for (int i = 0; i < (dt_LoaiDichVu.Rows.Count); i++)
            {
                comboBoxTenLoaiDV.Items.Add(dt_LoaiDichVu.Rows[i]["TenLoaiDV"]);
            }
            comboBoxTenLoaiDV.Text = dt_LoaiDichVu.Rows[0]["TenLoaiDV"].ToString();

            // Tim Kiem Dich Vu
            simpleButtonOK.Enabled = false;
            simpleButtonHuyTK.Enabled = false;
            simpleButtonTK.Enabled = true;
            radioButtonTenDV.Enabled = false;
            radioButtonTheoGiaTu.Enabled = false;
            radioButtonTheoMoTa.Enabled = false;
            textBoxTimKiem.Enabled = false;
            textBoxGiaTu.Enabled = false;
            textBoxGiaDen.Enabled = false;
            textBoxGiaTu.ResetText();
            textBoxGiaDen.ResetText();
            textBoxTimKiem.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            textBoxTimKiem.ForeColor = System.Drawing.SystemColors.WindowFrame;           
            textBoxTimKiem.Text = "Nhập Từ Khóa Tìm Kiếm...";
            radioButtonTheoLoaiDV.Enabled = false;
            // Loai Dich Vu
            simpleButtonLuuLoaiDV.Enabled = false;
            simpleButtonHuyLoaiDV.Enabled = false;
            simpleButtonThemLoaiDV.Enabled = true;
            simpleButtonXoaLoaiDV.Enabled = true;
            simpleButtonSuaLoaiDV.Enabled = true;
            textBoxMaLoaiDV.Enabled = false;
            textBoxTenLoaiDV.Enabled = false;
            textBoxTenLoaiDV.Text = "";
            textBoxMaLoaiDV.Text = "";
            checkThemLoaiDV = false;
            dataGridViewLoaiDV.DataSource = BUS_LoaiDichVu.hienthiDanhSachLoaiDichVu();
        }

        private void simpleButtonHuy_Click(object sender, EventArgs e)
        {
            simpleButtonHuy.Enabled = false;
            simpleButtonLuu.Enabled = false;
            simpleButtonSua.Enabled = true;
            simpleButtonThem.Enabled = true;
            simpleButtonXoa.Enabled = true;
            textBoxMaDV.Enabled = false;
            textBoxMaDV.ResetText();
            textBoxTenDV.Enabled = false;
            textBoxTenDV.ResetText();
            textBoxMoTa.Enabled = false;
            textBoxMoTa.ResetText();
            textBoxDonGia.ResetText();
            textBoxDonGia.Enabled = false;
            textBoxDonViTinh.Enabled = false;
            textBoxDonViTinh.ResetText();
            checkThemDV = false;
            dataGridViewDV.DataSource = BUS_DichVu.hienthiDanhSachDichVu();
            comboBoxTenLoaiDV.Enabled = false;
        }

        private void simpleButtonThem_Click(object sender, EventArgs e)
        {
            simpleButtonHuy.Enabled = true;
            simpleButtonLuu.Enabled = true;
            simpleButtonSua.Enabled = false;
            simpleButtonThem.Enabled = false;
            simpleButtonXoa.Enabled = false;
            textBoxMaDV.Enabled = false;
            textBoxMaDV.ResetText();
            textBoxTenDV.Enabled = true;
            textBoxTenDV.ResetText();
            textBoxMoTa.Enabled = true;
            textBoxMoTa.ResetText();
            textBoxDonGia.ResetText();
            textBoxDonGia.Enabled = true;
            textBoxDonViTinh.Enabled = true;
            textBoxDonViTinh.ResetText();
            checkThemDV = true;
            textBoxTenDV.Focus();
            comboBoxTenLoaiDV.Enabled = true;

          
        }

        private void simpleButtonSua_Click(object sender, EventArgs e)
        {
            if(textBoxMaDV.Text !="")
            {
            simpleButtonHuy.Enabled = true;
            simpleButtonLuu.Enabled = true;
            simpleButtonSua.Enabled = false;
            simpleButtonThem.Enabled = false;
            simpleButtonXoa.Enabled = false;
            textBoxMaDV.Enabled = false;
            textBoxTenDV.Enabled = true;
            textBoxMoTa.Enabled = true;
            textBoxDonGia.Enabled = true;
            textBoxDonViTinh.Enabled = true;
            checkThemDV = false;
            textBoxTenDV.Focus();
            comboBoxTenLoaiDV.Enabled = true;
            }
            else
            {
                MessageBox.Show("Bạn cần chọn Dịch vụ cần sửa!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void simpleButtonLuu_Click(object sender, EventArgs e)
        {
            if (textBoxTenDV.Text.Trim() != "" && textBoxDonGia.Text.Trim() != "" && textBoxDonGia.Text.Trim() != "")
            {
                  DataTable dt_dv = BUS_DichVu.hienthiDanhSachDichVu();
                        int dem = 0;
                        for (int i = 0; i < dt_dv.Rows.Count; i++)
                        {
                            if (textBoxTenDV.Text.Trim() == dt_dv.Rows[i]["TenDV"].ToString())
                            {
                                dem++;
                                break;
                            }                      
                        }
                        

                        if (dem == 0)
                        {
                            DTO_DichVu dv = new DTO_DichVu();
                            dv.TenDV = textBoxTenDV.Text;
                            dv.MoTa = textBoxMoTa.Text;
                            dv.DonViTinh = textBoxDonViTinh.Text;
                            dv.DonGia = int.Parse(textBoxDonGia.Text);
                            DataTable dt_LoaiDichVu = BUS_LoaiDichVu.hienthiDanhSachLoaiDichVu();
                            for (int i = 0; i < dt_LoaiDichVu.Rows.Count; i++)
                            {
                                if (dt_LoaiDichVu.Rows[i]["TenLoaiDV"].ToString().Trim() == comboBoxTenLoaiDV.Text.Trim())
                                {
                                    dv.MaLoaiDV = int.Parse(dt_LoaiDichVu.Rows[i]["MaLoaiDV"].ToString());
                                    break;
                                }
                            }
                            if (checkThemDV)
                            {
                                BUS_DichVu.themDichVu(dv);
                                XtraMessageBox.Show(" Thêm Dịch vụ thành công ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);

                            }
                            else if (!checkThemDV)
                            {
                                dv.MaDV = int.Parse(textBoxMaDV.Text);
                                BUS_DichVu.suaDichVu(dv);
                                XtraMessageBox.Show(" Sửa Dịch vụ thành công ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            simpleButtonHuy_Click(sender, e);
                            
                        }else{
                             MessageBox.Show("Tên dịch vụ đã có trong cơ sở dử liệu!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                       }
            }
            else
            {
                MessageBox.Show("Bạn cần điền đầy đủ thông tin!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void dataGridViewDV_MouseClick(object sender, MouseEventArgs e)
        {
            try
            {
                if (!checkThemDV)
                {
                    int r = dataGridViewDV.CurrentCell.RowIndex;
                    textBoxTenDV.Text = dataGridViewDV.Rows[r].Cells["TenDV"].Value.ToString();
                    textBoxMaDV.Text = dataGridViewDV.Rows[r].Cells["MaDV"].Value.ToString();
                    textBoxMoTa.Text = dataGridViewDV.Rows[r].Cells["MoTa"].Value.ToString();
                    textBoxDonViTinh.Text = dataGridViewDV.Rows[r].Cells["DonViTinh"].Value.ToString();
                    textBoxDonGia.Text = dataGridViewDV.Rows[r].Cells["DonGia"].Value.ToString();
                    comboBoxTenLoaiDV.Text = dataGridViewDV.Rows[r].Cells["LDV"].Value.ToString();
                }

            }
            catch (Exception)
            {
            }
        }

        private void simpleButtonXoa_Click(object sender, EventArgs e)
        {
            if (textBoxMaDV.Text.Trim() != "")
            {
                if (MessageBox.Show("Bạn có Chắc chắn muốn xóa???", "Note !", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    try
                    {
                        DTO_DichVu P = new DTO_DichVu();
                        P.MaDV = int.Parse(textBoxMaDV.Text);
                        BUS_DichVu.xoaDichVu(P);
                        simpleButtonHuy_Click(sender, e);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Không thể xóa được vì mã dịch vụ đã tồn tại ở bảng Khác!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                MessageBox.Show("Cần chọn Dịch vụ cần xóa!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        
        }

        private void textBoxDonGia_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) && (e.KeyChar != '.'))
                e.Handled = true;
        }

        private void simpleButtonTK_Click(object sender, EventArgs e)
        {
            simpleButtonOK.Enabled = true;
            simpleButtonHuyTK.Enabled = true;
            simpleButtonTK.Enabled = false;
            radioButtonTenDV.Enabled = true;
            radioButtonTheoGiaTu.Enabled = true;
            radioButtonTheoMoTa.Enabled = true;
            textBoxTimKiem.Enabled = false;
            textBoxGiaTu.Enabled = false;
            textBoxGiaDen.Enabled = false;
            textBoxGiaTu.ResetText();
            textBoxGiaDen.ResetText();
            radioButtonTheoLoaiDV.Enabled = true;
        }

        private void simpleButtonHuyTK_Click(object sender, EventArgs e)
        {
            simpleButtonOK.Enabled = false;
            simpleButtonHuyTK.Enabled = false;
            simpleButtonTK.Enabled = true;
            radioButtonTenDV.Enabled = false;
            radioButtonTheoGiaTu.Enabled = false;
            radioButtonTheoMoTa.Enabled = false;
            textBoxTimKiem.Enabled = false;
            textBoxGiaTu.Enabled = false;
            textBoxGiaDen.Enabled = false;
            textBoxGiaTu.ResetText();
            textBoxGiaDen.ResetText();
            textBoxTimKiem.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            textBoxTimKiem.ForeColor = System.Drawing.SystemColors.WindowFrame;
            textBoxTimKiem.Text = "Nhập Từ Khóa Tìm Kiếm...";
            dataGridViewDV.DataSource = BUS_DichVu.hienthiDanhSachDichVu();
            radioButtonTheoLoaiDV.Enabled = false;
        }

        private void textBoxTimKiem_MouseClick(object sender, MouseEventArgs e)
        {
            if (textBoxTimKiem.Text.Trim() == "Nhập Từ Khóa Tìm Kiếm...")
            {
                textBoxTimKiem.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
                textBoxTimKiem.ForeColor = System.Drawing.SystemColors.WindowText;
                textBoxTimKiem.ResetText();
            }
        }

        private void radioButtonTheoGiaTu_MouseClick(object sender, MouseEventArgs e)
        {
            textBoxGiaTu.Enabled = true;
            textBoxGiaTu.ResetText();
            textBoxGiaDen.ResetText();
            textBoxGiaDen.Enabled = true;
        }

        private void radioButtonTenDV_MouseClick(object sender, MouseEventArgs e)
        {
            textBoxTimKiem.Enabled = true;
        }

        private void radioButtonTheoMoTa_MouseClick(object sender, MouseEventArgs e)
        {
            textBoxTimKiem.Enabled = true;
        }

        private void textBoxGiaTu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) && (e.KeyChar != '.'))
                e.Handled = true;
        }

        private void textBoxGiaDen_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) && (e.KeyChar != '.'))
                e.Handled = true;
        }

        private void simpleButtonOK_Click(object sender, EventArgs e)
        {
            if (radioButtonTenDV.Checked == true)
            {
                dataGridViewDV.DataSource = clsKetNoi.TimKiem("pr_HienThiDichVu", "TenDV", textBoxTimKiem.Text.ToString().Trim());
            }

            if (radioButtonTheoGiaTu.Checked == true)
            {
                dataGridViewDV.DataSource = clsKetNoi.TimKiemKhoang("pr_HienThiDichVu", "DonGia",textBoxGiaTu.Text, textBoxGiaDen.Text);
            }
            if (radioButtonTheoMoTa.Checked == true)
            {
                dataGridViewDV.DataSource = clsKetNoi.TimKiem("pr_HienThiDichVu", "MoTa", textBoxTimKiem.Text.ToString());
            }
            if (radioButtonTheoLoaiDV.Checked == true)
            {
                dataGridViewDV.DataSource = clsKetNoi.TimKiem("pr_HienThiDichVu", "TenLoaiDV", textBoxTimKiem.Text.ToString());
            }

        }

        private void groupControl3_Paint(object sender, PaintEventArgs e)
        {

        }

        private void textBoxMoTa_TextChanged(object sender, EventArgs e)
        {

        }

        private void groupControl1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void simpleButton2_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void simpleButtonSuaLoaiDV_Click(object sender, EventArgs e)
        {
            simpleButtonLuuLoaiDV.Enabled = true;
            simpleButtonHuyLoaiDV.Enabled = true;
            simpleButtonThemLoaiDV.Enabled = false;
            simpleButtonXoaLoaiDV.Enabled = false;
            simpleButtonSuaLoaiDV.Enabled = false;
            textBoxMaLoaiDV.Enabled = false;
            textBoxTenLoaiDV.Enabled = true;
            textBoxTenLoaiDV.Text = "";
            textBoxTenLoaiDV.Focus();
            checkThemLoaiDV = false;
        }

        private void simpleButtonThemLoaiDV_Click(object sender, EventArgs e)
        {
            simpleButtonLuuLoaiDV.Enabled = true;
            simpleButtonHuyLoaiDV.Enabled = true;
            simpleButtonThemLoaiDV.Enabled = false;
            simpleButtonXoaLoaiDV.Enabled = false;
            simpleButtonSuaLoaiDV.Enabled = false;
            textBoxMaLoaiDV.Enabled = false;
            textBoxTenLoaiDV.Enabled = true;
            textBoxTenLoaiDV.Text = "";
            textBoxMaLoaiDV.Text = "";
            checkThemLoaiDV = true;
            textBoxMaLoaiDV.Focus();
        }

        private void simpleButtonHuyLoaiDV_Click(object sender, EventArgs e)
        {
            simpleButtonLuuLoaiDV.Enabled = false;
            simpleButtonHuyLoaiDV.Enabled = false;
            simpleButtonThemLoaiDV.Enabled = true;
            simpleButtonXoaLoaiDV.Enabled = true;
            simpleButtonSuaLoaiDV.Enabled = true;
            textBoxMaLoaiDV.Enabled = false;
            textBoxTenLoaiDV.Enabled = false;
            textBoxTenLoaiDV.Text = "";
            textBoxMaLoaiDV.Text = "";
            checkThemLoaiDV = false;
            dataGridViewLoaiDV.DataSource = BUS_LoaiDichVu.hienthiDanhSachLoaiDichVu();            
            comboBoxTenLoaiDV.Items.Clear();
            DataTable dt_LoaiDichVu = BUS_LoaiDichVu.hienthiDanhSachLoaiDichVu();
            for (int i = 0; i < (dt_LoaiDichVu.Rows.Count); i++)
            {
                comboBoxTenLoaiDV.Items.Add(dt_LoaiDichVu.Rows[i]["TenLoaiDV"]);
            }
            comboBoxTenLoaiDV.Text = dt_LoaiDichVu.Rows[0]["TenLoaiDV"].ToString();
        }

        private void simpleButtonLuuLoaiDV_Click(object sender, EventArgs e)
        {
            if (textBoxTenLoaiDV.Text.Trim() != "")
            {
                DataTable dt_ldv = BUS_LoaiDichVu.hienthiDanhSachLoaiDichVu();
                int dem = 0;
                for (int i = 0; i < dt_ldv.Rows.Count; i++)
                {
                    if (textBoxTenLoaiDV.Text.Trim() == dt_ldv.Rows[i]["TenLoaiDV"].ToString().Trim())
                    {
                        dem++;
                        break;
                    }
                }
                if (dem == 0)
                {
                    DTO_LoaiDichVu dto_ldv = new DTO_LoaiDichVu();
                    dto_ldv.TenLoaiDV = textBoxTenLoaiDV.Text;
                    if (checkThemLoaiDV)
                    {
                        BUS_LoaiDichVu.themLoaiDichVu(dto_ldv);
                        XtraMessageBox.Show(" Thêm Loại Dịch Vụ thành công ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }
                    else if (!checkThemLoaiDV)
                    {
                        dto_ldv.MaLoaiDV = int.Parse(textBoxMaLoaiDV.Text);
                        BUS_LoaiDichVu.suaLoaiDichVu(dto_ldv);
                        XtraMessageBox.Show(" Sửa Loại Dịch Vụ thành công ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    simpleButtonHuyLoaiDV_Click(sender, e);
                }
                else
                {
                    MessageBox.Show("Tên Loại Dịch Vụ đã có trong cơ sở dử liệu!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Bạn cần điền đầy đủ thông tin!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void dataGridViewLoaiDV_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            try
            {
                if (!checkThemLoaiDV)
                {
                    int r = dataGridViewLoaiDV.CurrentCell.RowIndex;
                    textBoxTenLoaiDV.Text = dataGridViewLoaiDV.Rows[r].Cells["TenLoaiDV"].Value.ToString();
                    textBoxMaLoaiDV.Text = dataGridViewLoaiDV.Rows[r].Cells["MaLoaiDV"].Value.ToString();
                }

            }
            catch (Exception)
            {
            }
        }

        private void simpleButtonXoaLoaiDV_Click(object sender, EventArgs e)
        {
            if (textBoxMaLoaiDV.Text.Trim() != "")
            {
                if (MessageBox.Show("Bạn có chắc chắn muốn xóa???", "Note !", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    try
                    {
                        DTO_LoaiDichVu dto_ldv = new DTO_LoaiDichVu();
                        dto_ldv.MaLoaiDV = int.Parse(textBoxMaLoaiDV.Text);
                        BUS_LoaiDichVu.xoaLoaiDichVu(dto_ldv);
                        simpleButtonHuyLoaiDV_Click(sender, e);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Không thể xóa được vì mã Loại Dịch Vụ đã tồn tại ở bảng Khác!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                MessageBox.Show("Cần chọn loại Dịch Vụ cần xóa!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void radioButtonTheoLoaiDV_MouseClick(object sender, MouseEventArgs e)
        {
            textBoxTimKiem.Enabled = true;
        }

      
    
    }
}